////////////////////////////////////////////////////////////////
// filename: player.h
// description: header file for the player engine class
// author: Jay Tomten (jaytomten@gmail.com)
// notes:

// namespace
using namespace std;

// defines
#ifndef __PLAYER__
#define __PLAYER__

#define PLAYER_0                593
#define PLAYER_1                594
#define PLAYER_2                595

// includes
#include <GL/gl.h>
#include "interface.h"
#include "list.h"
#include <list>
#include "game.h"
#include "camera.h"
#include "sound.h"
#include "stats.h"

// globals

////////////////////////////////////////////////////////////////
// Player - definition of our player class
class Player {

public:

    Stats      pStats;    // the player stats like type kills units points
    List      *pList;     // objects owned by this player
    Camera     pCamera;   // camera for this player
    list<int>  pEvents;   // list of player events to process

    Player();
    ~Player();

    bool Init(Game *engine, int playerType, Player *opponent); // set up the player/load save?
    bool Update(float d);                                      // update everything associated with player and draw all/collide
    void Draw();                                               // draw all of this players objects

private:

    Player    *rOpponent;   // the opponent
    Game      *rEngine;     // reference to the game engine from main
    Interface  pUI;         // this players ui
    bool       checkQuit;   // this is to confirm quits
    bool       checkUI; // this var helps with rendering the UI in split-screen mode

    bool Process();
    void Collide(float d, Player *enemy);                      // collide

};

#endif
